package org.nanotek;

import java.util.Date;

/**
 * An Instantiable interface defines a contract that provides an alternation of "which subclass of K" is created 
 * given an certain context. It's useful on cases that "under certain circumstances" the instantiate a different object.
 * Need a review to comprise on "Factory Pattern". 
 * 
 * @author josecanova
 *
 * @param <T>
 * @param <C>
 */

public interface Instantiable<T extends Kong<?>, C extends Context<DateBase<Kong<Date>>>> {

	public Class<T> getClazz();

	public T instantiate(C context);
	
}
